/*
 * MIT License
 *
 * Copyright (c) 2023 OrdinaryRoad
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: douyin.proto

// Protobuf Java Version: 3.25.3
package tech.ordinaryroad.live.chat.client.codec.douyin.protobuf;

public interface GiftStructOrBuilder extends
    // @@protoc_insertion_point(interface_extends:GiftStruct)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <code>.Image image = 1;</code>
   * @return Whether the image field is set.
   */
  boolean hasImage();
  /**
   * <code>.Image image = 1;</code>
   * @return The image.
   */
  tech.ordinaryroad.live.chat.client.codec.douyin.protobuf.Image getImage();
  /**
   * <code>.Image image = 1;</code>
   */
  tech.ordinaryroad.live.chat.client.codec.douyin.protobuf.ImageOrBuilder getImageOrBuilder();

  /**
   * <code>string describe = 2;</code>
   * @return The describe.
   */
  java.lang.String getDescribe();
  /**
   * <code>string describe = 2;</code>
   * @return The bytes for describe.
   */
  com.google.protobuf.ByteString
      getDescribeBytes();

  /**
   * <code>bool notify = 3;</code>
   * @return The notify.
   */
  boolean getNotify();

  /**
   * <code>uint64 duration = 4;</code>
   * @return The duration.
   */
  long getDuration();

  /**
   * <code>uint64 id = 5;</code>
   * @return The id.
   */
  long getId();

  /**
   * <pre>
   *  GiftStructFansClubInfo fansclubInfo = 6;
   * </pre>
   *
   * <code>bool forLinkmic = 7;</code>
   * @return The forLinkmic.
   */
  boolean getForLinkmic();

  /**
   * <code>bool doodle = 8;</code>
   * @return The doodle.
   */
  boolean getDoodle();

  /**
   * <code>bool forFansclub = 9;</code>
   * @return The forFansclub.
   */
  boolean getForFansclub();

  /**
   * <code>bool combo = 10;</code>
   * @return The combo.
   */
  boolean getCombo();

  /**
   * <code>uint32 type = 11;</code>
   * @return The type.
   */
  int getType();

  /**
   * <code>uint32 diamondCount = 12;</code>
   * @return The diamondCount.
   */
  int getDiamondCount();

  /**
   * <code>bool isDisplayedOnPanel = 13;</code>
   * @return The isDisplayedOnPanel.
   */
  boolean getIsDisplayedOnPanel();

  /**
   * <code>uint64 primaryEffectId = 14;</code>
   * @return The primaryEffectId.
   */
  long getPrimaryEffectId();

  /**
   * <code>.Image giftLabelIcon = 15;</code>
   * @return Whether the giftLabelIcon field is set.
   */
  boolean hasGiftLabelIcon();
  /**
   * <code>.Image giftLabelIcon = 15;</code>
   * @return The giftLabelIcon.
   */
  tech.ordinaryroad.live.chat.client.codec.douyin.protobuf.Image getGiftLabelIcon();
  /**
   * <code>.Image giftLabelIcon = 15;</code>
   */
  tech.ordinaryroad.live.chat.client.codec.douyin.protobuf.ImageOrBuilder getGiftLabelIconOrBuilder();

  /**
   * <code>string name = 16;</code>
   * @return The name.
   */
  java.lang.String getName();
  /**
   * <code>string name = 16;</code>
   * @return The bytes for name.
   */
  com.google.protobuf.ByteString
      getNameBytes();

  /**
   * <code>string region = 17;</code>
   * @return The region.
   */
  java.lang.String getRegion();
  /**
   * <code>string region = 17;</code>
   * @return The bytes for region.
   */
  com.google.protobuf.ByteString
      getRegionBytes();

  /**
   * <code>string manual = 18;</code>
   * @return The manual.
   */
  java.lang.String getManual();
  /**
   * <code>string manual = 18;</code>
   * @return The bytes for manual.
   */
  com.google.protobuf.ByteString
      getManualBytes();

  /**
   * <code>bool forCustom = 19;</code>
   * @return The forCustom.
   */
  boolean getForCustom();

  /**
   * <pre>
   *  specialEffectsMap = 20;
   * </pre>
   *
   * <code>.Image icon = 21;</code>
   * @return Whether the icon field is set.
   */
  boolean hasIcon();
  /**
   * <pre>
   *  specialEffectsMap = 20;
   * </pre>
   *
   * <code>.Image icon = 21;</code>
   * @return The icon.
   */
  tech.ordinaryroad.live.chat.client.codec.douyin.protobuf.Image getIcon();
  /**
   * <pre>
   *  specialEffectsMap = 20;
   * </pre>
   *
   * <code>.Image icon = 21;</code>
   */
  tech.ordinaryroad.live.chat.client.codec.douyin.protobuf.ImageOrBuilder getIconOrBuilder();

  /**
   * <pre>
   * fixme 后面的就不写了还有几十个属性
   * </pre>
   *
   * <code>uint32 actionType = 22;</code>
   * @return The actionType.
   */
  int getActionType();
}
